---
title: Batch job submission (Appworx)
summary: End-to-end workflow for submitting a background print/report batch job to the Appworx scheduler.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
operation_id: OP-APP-006
trigger: A legal manager constructs and submits an Appworx job request
---

# Batch job submission (Appworx)

This workflow submits a background batch job (such as a print/report job) to the Appworx scheduler, routing to a production or non-production Oracle database instance based on the detected application environment.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-APP-006 |
| **Trigger** | A legal manager (e.g., a print/report background job) constructs a batch job request |
| **Libraries involved** | [SAIF.Services.Appworx](../../libraries/saif-services-appworx/overview.md) |
| **Screens** | n/a (background job, no direct screen) |
| **Inputs** | `ModuleName`, `Requestor`, `Arg1..Arg20` |
| **Outputs** | A submitted Appworx job (`JOB_QUEUE`) |

## Steps

1. A legal manager (e.g., a print/report background job) constructs a `clsRequestAppworxJob` ([SAIF.Services.Appworx](../../libraries/saif-services-appworx/overview.md)), sets `ModuleName`/`Requestor`/`Arg1..Arg20`.
2. `SubmitBatchJob` resolves the target Oracle database instance (optionally redirecting to `WCISDEV1`/`WCISPROD` based on `AppGlobal.EnvironmentService.GetApplicationEnvironment()`), then calls the `submit_appworx_job` stored procedure ([BR-APP-004](../business-rules.md#br-app-004-environment-classification-governs-real-vs-test-side-effects)).
3. The caller's `DPI.UserID` is propagated as data to Appworx for auditing; any `NO_DATA_FOUND` from the stored procedure is swallowed rather than surfaced to the caller.

## Process flow

The following diagram visualizes the Appworx batch job submission workflow.

```mermaid
flowchart TD
	Start(["Manager constructs<br>clsRequestAppworxJob"]) --> S1["Set ModuleName / Requestor /<br>Arg1..Arg20"]
	S1 --> S2{Environment is production?}
	S2 -->|Yes| S3[Target WCISPROD portal]
	S2 -->|No| S4[Target WCISDEV1 portal]
	S3 --> S5["Call submit_appworx_job<br>stored procedure"]
	S4 --> S5
	S5 --> S6{NO_DATA_FOUND returned?}
	S6 -->|Yes| S7["Condition swallowed, appears<br>to succeed"]
	S6 -->|No| EndOk([Job submitted])
```

## Failure and edge-case behavior
- `submit_appworx_job` invocation swallows a `NO_DATA_FOUND` condition rather than surfacing it to the caller, so failed/no-op batch job submissions may appear to succeed.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Data model](../data-model.md)

## Sources
- [SAIF.Services.Appworx](../../libraries/saif-services-appworx/overview.md)
- LegalMaintenance web application (LegalMaintenance/*.aspx.vb)
